<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>00544</h1>
    <script>
//准备一些数据 
var hongbin = {
        name: '小明',
        age: 18
    }

    var arr1 = [111,222,333,666];
    var arr2 = [5555,8888];
    function fn1(num1,num2){
        console.group('fn1函数打印');
        console.log('num1:',num1);
        console.log('num2:',num2);
        console.log('this',this);
        console.groupEnd();
    }

//    var box =  function test(){
//         return 100
//     }
    // box();  res();

    // var res = fn1.bind(hongbin,10000,20000);

    // res();


    // 让fn1 函数 当做定时器处理函数 
    // 让函数内的this指向hongbin 

    // var res =fn1.bind(hongbin,10000,20000);
    // res();

    // setTimeout(res,2000);
    // setTimeout(fn1.bind(hongbin,100,200),2000);
    // var res = fn1.bind(arr1,10000,20000);
    // document.querySelector('h1').onclick = res;

    function test(){
        var num3 = 500;
        return num3
    }


    function test2(){
        console.log(this.num3);
    }

    test2.call(test);
    // 上面this指向的是test函数 
    //但是test函数内部没有num3属性 所以打印出来是undefined


    var yanglu = {
        name:'yanglu',
        age:18,
        sing:function(){
            var songname='阿珍爱上了阿祥';
            return songname;
        }
    }

    // alert(songname)


    function test5(){
        console.log(this.sing())
    }

    test5.call(yanglu);

    // call apply  bind 并不能通过改变this获取函数内部的私有变量
    // 但是可以通过函数内部方法返回值 拿到结果 
    </script>

</body>
</html>